Constraint-based production planning and scheduling

ABSTRACT

The present invention is a constraint-based planning tool that specifically addresses the needs of complex discrete and process industries by providing a computationally efficient method and system for fulfillment of customer orders in a supply chain. By comprehensively synchronizing and optimizing the flow of materials through the enterprise, the present invention creates a feasible plan for manufacturing operations that simultaneously optimizes both material and capacity constraints by planning and scheduling multiple customer orders, planning for use the various resources located in remote locations needed to fulfill such orders, and scheduling the used resources for replenishment at appropriate times so that the resources meet the needs of the orders.

CROSS REFERENCE TO RELATED APPLICATIONS

[0001] This application claims priority from U.S. ProvisionalApplication No.60/377,252, “Constraint-Based Production Planning AndScheduling,” filed May 2, 2002, which is hereby incorporated byreference.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The present invention relates to a system and method for planningand scheduling customer orders. More specifically, the present inventionrelates to a computationally efficient method and system for fulfillmentof customer orders in a supply chain by planning and scheduling multiplecustomer orders, planning for use the various resources located inremote locations needed to fulfill such orders, and scheduling the usedresources for replenishment at appropriate times so that the resourcesmeet the needs of the orders.

[0004] 2. Discussion of the Related Art

[0005] Today's business environment is more competitive than everbefore. Increasingly demanding customers and the surge of strong globalcompetition require reduced manufacturing cycle times and increasedcustomization of products and services—all in addition to thetraditional allocation challenges of constrained resources.Manufacturers are faced with volatile demand, reduced product lifecycles, complex supply chains, and shrinking margins. To survive, theymust have the ability to satisfy customer demand while maximizingprofits, but traditional methods fall short of providing the modeling,optimization, and analysis tools required to manage these complexmanufacturing environments. When the right materials are not availablewhen and where they are needed, many companies experience manufacturingdelays, expediting costs, higher material costs, and poor customerservice.

[0006] The production planning tools that have been developed in anattempt to address these business needs generally require complex modelsand analysis of production environments and the supporting processes.The most comprehensive algorithm-based analysis methods require levelsof computation that preclude modeling of an entire production process ina dynamic environment. Heuristic planning tools provide a lesscomputationally intensive solution to plant optimization models; butmany sacrifice the ability to model key features of complex plantoperations such as use of tank-type resources, personnel variations,rescheduling after material delays, and T-plant type modeling. Thus,there remains a need in the art for a computationally efficient methodand system for planning and scheduling multiple customer orders thatprovides advanced modeling of production processes.

BRIEF SUMMARY OF THE INVENTION

[0007] Accordingly, the present invention relates to a computationallyefficient method and system for fulfillment of customer orders in asupply chain by planning and scheduling multiple customer orders,planning for use the various resources located in remote locationsneeded to fulfill such orders, and scheduling the used resources forreplenishment at appropriate times so that the resources meet the needsof the orders.

[0008] Broadly described, the present invention is a constraint-basedplanning tool that specifically addresses the needs of complex discreteand process industries. By comprehensively synchronizing and optimizingthe flow of materials through the enterprise, the present inventioncreates a feasible plan for manufacturing operations that simultaneouslyoptimizes both material and capacity constraints. As a result,purchasing and production may be coordinated with demand, ensuring thatthe right materials arrive at the right time in the manufacturingprocess. Furthermore, the present invention may quickly identify theoperation's constraints and provides planners with the tools to makedecisions on how to best resolve the issues. Through a powerful andflexible algorithm, the present invention gives the planner control overthe priorities of the business through dynamic prioritization. Dynamicprioritization may consider management policies such as customerservice, throughput, and inventory on work to be produced, as well asthe constraints and supporting costs confronting management.

[0009] In one implementation, the present invention builds a realisticpicture of the business through its advanced modeling techniques.Specifically, the present invention maintains a full database ofavailable resources, both mechanical and human. Each resource can havespecified substitutes and linked auxiliary resources—such as fixtures,tools, and inspectors—that are required together to complete anoperation. The full bill of material may be considered along withspecified substitutes and any alternative routes needed to handle them.The present invention may further apply rules to assist in the modelingof particular physical aspects of plant operations, such as cyclic andcontinuous flow production, time- and cost-based dependent set up, timeper part or per batch operations, permissions to start work,uninterruptible processes, and rework and scrap rate.

[0010] Overall, the present invention provides the advanced modelingrequired by complex discrete and process industries in which theoptimization of flow is paramount and where a realistic and robust modelof the whole production environment may be constructed-includingsignificant activities, processes, flows, and constraints. This modelingcapability allows the planner to simulate how the entire productionprocess operates and identify how its components interact underdifferent conditions. This ‘what-if’ capability can also help theenterprise with critical business improvement efforts by simulating theconsequences of each potential change.

[0011] Using these features, the present invention may reducemanufacturing cycle time and improve customer service by optimizingmulti-site production plans and plant production schedules as well asidentifying and optimizing production bottlenecks. Similarly, thepresent invention allows the user to synchronize the flow and balance ofproduction while intelligently balancing use of production resources.Likewise, the bottleneck optimization helps to maximize throughput,material flow synchronization to reduce lead-time and inventory. Thereality-based modeling helps to improve the quality and productivity ofmaterial and production plans. The present invention is scalable andflexible to maximize efficiencies while allowing integration to otherproducts to reduce cost. Similarly, the present invention uses dynamicbatch sizing to optimize flow.

[0012] In another embodiment, the present invention addresses the uniquechallenges of an order-based business, whether the business ismake-to-order, engineer-to-order, or assemble-to-order. Designed toreduce manufacturing cycle time and improve customer service, thepresent invention may identify and optimize constrained resources andfocuses on due-date delivery performance and Just-In-Time (JIT)synchronization of material flow. To achieve these results, the presentinvention uses reality-based modeling and logical constraint-basedalgorithms that seek to maximize bottleneck utilization and synchronizethe flow of material to the customer order.

[0013] The present invention may further enable straightforward,graphical modeling of a business's entire plant, as well as thebusiness's external resources, making the solution both more flexibleand easier to implement. The modeling capabilities extend beyondtraditional scheduling solutions to include production operations,material requirements, complete bill-of-materials, production tooling,production personnel, and engineering resources. Using the integrationand web technology, the present invention supports real-time,plant-to-plant collaboration, and delivers seamless communication withother functional areas, including procurement, engineering, and plantmanagement.

[0014] Thus, the present invention can help improve a business'scapacity utilization and the resulting customer service while shrinkinglead-time and inventory levels. By using the present invention,incremental profit may be generated through additional sales, reducedoutsourcing costs, capital cost avoidance on additional equipment,productivity gains, inventory reduction, and improved asset utilization.

[0015] The present invention may reduce manufacturing cycle time andimprove customer service by synchronizing multi-site production plansand single plant production schedules. Specifically, the presentinvention may produce realistic and robust management of resources andmaterials; intelligently balance the use of production and material; andrapidly simulate alternative manufacturing strategies. Other featuresand benefits of the present invention include synchronization ofmanufacturing to maximize a business's throughput; customer serviceoptimization to improve customer loyalty; throughput velocityimprovement to reduce inventory and lead-time requirements; fastsimulation that enables problems to be anticipated and quickly resolved;the flexibility to accurately model manufacturing environments; and thefast capacity and material analysis to create accurate manufacturingpromise dates.

BRIEF DESCRIPTION OF THE DRAWINGS

[0016] The accompanying drawings, which are included to provide furtherunderstanding of the invention and are incorporated in and constitute apart of this specification, illustrate embodiments of the invention andtogether with the description serve to explain the principles of theinvention.

[0017]FIG. 1 is a flow diagram depicting the general steps for planningan order according to embodiments of the present invention.

[0018]FIG. 2 is a flow diagram depicting a “PRIORITY” subroutineaccording to embodiments of the present invention.

[0019]FIG. 3 is a flow diagram depicting a “CHOOSE” subroutine accordingto embodiments of the present invention.

[0020]FIG. 4 is a flow diagram depicting a “ATEN” subroutine accordingto embodiments of the present invention.

[0021]FIG. 5 is a flow diagram depicting a “SAM 1” subroutine accordingto embodiments of the present invention.

[0022]FIG. 6 is a flow diagram depicting a “SAM 2” subroutine accordingto embodiments of the present invention.

[0023]FIG. 7 is a flow diagram depicting the general steps forscheduling an order according to embodiments of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0024] Reference will now be made in detail to the preferred embodimentof the present invention, examples of which are illustrated in theaccompanying drawings.

[0025] Glossary

[0026] Activity. One of the components of demand. The essentialequivalent of a step in the utilization model. The lowest level activestep or function involved in the production of an object. Each activityhas requirements and relationships associated with it.

[0027] Allocation. An assignment of a resource to an activity.

[0028] Assignment. An association of a resource and an activity.

[0029] Changeover. A requirement which involves reconfiguration of aresource to change its capabilities or its nature, thereby allowing anew use or a reuse of that resource itself in a plan.

[0030] Demand. One of the basic component descriptors of the business.The demand describes the orders for products or sub-products of thebusiness. The demand may be external, in the sense of customer orders,or it may be internal, in the sense of work in progress. The demand maybe customer driven or independent of specific customer orders.

[0031] Horizon. The time interval in which scheduling may occur.

[0032] Just in time (JIT). A manufacturing process in which theobjective is completed at the last possible time. JIT minimizesinventory.

[0033] Line Item. A component or one objective of an order. Every lineitem has a quantity, and possibly an acceptable quantity which is lessthan the desired quantity.

[0034] Model. A representation of a basic component descriptor of thebusiness, or of an aspect of the business.

[0035] Objective. The goal or end result, or even an immediate result,of a sequence of operations. The objective may be the output item orproduct of the business, or a sub-component of the product.

[0036] Order. A specific example of demand. A designator or containerfor all line items. An order is complete when all of the line itemscontained in it have been completed.

[0037] Opportunity. A time when an activity can be accomplished andscheduled on a resource for a plan.

[0038] Plan. One of the basic component descriptors of the business. Aplan is a series of events necessary to produce the objective. A plan isa schedule of how the resources are going to be tasked to meet theobjective. It represents the application of the resources to meetdemand. A plan involves one or more operations which are assignedspecific start times, end times and resources.

[0039] Resource. A person, place or thing of the business which has astate through time, which is typically made or used by an operation.

[0040] Schedule. The assignment of one or more start times and end timesto operations.

[0041] Work in process. An intermediate and incomplete state of anobjective which may be transitory during the production of theobjective.

[0042] Process Over View

[0043]FIG. 1 provides flow diagram depicting the general steps forplanning an order according to embodiments of the present invention. Theinvention is effective because of the method by which the priorities areassigned and used to activate events according to a particular sequence.The priorities assigned to different stations (activities) determine thesequence in which each of them will have an opportunity to receive anynewly released resource that has just completed its last task. Theassignments so made determine the schedule that will be followed.

[0044] As shown in FIG. 1, step 100 requires the system to read acalendar and setup matrix into a computer. The calendar informationincludes shop operational dates, personnel availability, and the like. Asetup matrix incorporates the factors (such as personnel, changeovertime and additional equipment) involved in the setup and changing ofindividual workstations to accommodate various production activities. Afundamental concept of the present invention is to recalculate theentire set of priorities to be assigned each time there is any change instatus, that is, either an activation of a resource at a particularstation or the completion of a batch at a particular station. In eachrecalculation of the priorities, many variables are considered,including: the due dates of each of the orders in the plant; the leadtime between each station and each order it feeds; the number of partswhich have been done at each station; the order to which parts at astation are allocated; the existence of too much of an accumulation ofstock, either at the station itself or at some successor station; andthe type of setup last done with the resource to be activated at thisstation and the time thus saved by reactivating it here, as compared toits activation at a station having other priorities. When a dependentsetup matrix is defined, all setup times given in the matrix areconsidered in assigning the priorities.

[0045] Flags are used to indicate the existence of a specific condition,a preference, a constraint, and the like. Typically a flag number isassigned within the system to correlate to a specific condition,preference or constraint. Flags may also be used to control the planningprocess. Flags are used to indicate, for example, that a schedulingopportunity is not feasible; therefore, the system needs to look atother scheduling opportunities. Other flags may be used to indicatespecific constraints or preferences provided by the user.

[0046] In step 200, arrow and machine cards are read into the system toprovide a description of the initial conditions of the operatingfacility prior to determine a schedule. Alternatively, this informationcan be downloaded by other means.

[0047] From the collection of data entered in the previous steps, thesystem conducts the step 300 of building a database for the network. Thedatabase comprises information for all the priorities established in thesetup matrix that will be applied to the various resources.

[0048] Still referring to FIG. 1, in step 400 the system calculates aminimum batch quantity “MBQ”) using an explosion down the net. Aftercompletion of step 400, the system performs “PRIORITY” module 500 toidentify the order[s] that rate the highest priority based on thecombination of parameters identified by the user in step 300. Step 500is followed by “CHOOSE” module 600, that evaluates the current resourceavailability at defined intervals and selects production routes toaccomplish the highest priority orders. The “PRIORITY” module 500 isdescribed in greater detail in FIG. 2, and the “CHOOSE” module 600 isdescribed in greater detail in FIG. 3.

[0049] Before any assignment, the system checks the current availabilityof each component of the resource configuration required by the stationto be activated (including the main machine, its support machine, itssetup man, its auxiliary machine, one or more support machines for theauxiliary machine, possible substitute machines for each of thesemachines). Also checked is the availability of stock needed to activateat least one minimum batch quantity at this station.

[0050] It is the repeated checking of priorities after every singleevent that keeps the system from going astray too far in guiding thesequence of events. However, considering the number of variablequantities that must be checked, both for the station and for theresource configuration, the time necessary to check all of them would beprohibitive, were it not for the way these checks have been organized tokeep computer processing time to a minimum. The organization of thesechecks will be described below.

[0051] Referring now to FIG. 2, “PRIORITY” module 500 is shown. Step 510calculates the station stock limitation (“SSL”) at time zero. At step520, the system must identify common part stations. Where there are notcommon-part stations, step 530 calculates priorities (“PN”) at eachnon-common part station using the following algorithm.

[0052] Basic priority, PN, is calculated using a universal functionPR(t,PAF) which is an exponentially decreasing function of time asmeasured from the start date of planning, for any value of PAFspecified.

[0053] This function is given by: $\begin{matrix}{{{PR}\left( {t,{PAF}} \right)} = {{{{{APR}\left\lbrack {\left( {{BPAF} + 1} \right)\left( {10 - {VK}} \right)^{5}} \right\rbrack}1.0E} - {S\quad {for}\quad {VK}}} \leq 0}} \\{{= {{APR}\left\lbrack {e = {{{p\left( {- {VK}^{0.45}} \right)} + {{BPAF}*e}} = {p\left( {- {VK}^{APAF}} \right)}}} \right\rbrack}}\quad} \\{{{{for}\quad 0} < {VK} < 730}} \\{= {{2{APRe}} = {{{p\left( {- {VK}^{0.45}} \right)}\quad {for}\quad {VK}} \geq 730}}}\end{matrix}$

[0054] where VK is t, and

[0055] APAF=0.5+0.0075(PAF−9)

[0056] BPAF=e=p(−730^(0.45)+730^(APAF))

[0057] APR=10^((4/3)(PAF−9))

[0058] Each station (“ST”) is given a priority (“PN”) derived usingthree of“ORD1,” the order having the earliest due date that is fed bythat ST. The first number, PC, is the value of PR(t,PAF) when t has thevalue of the due date of ORD1 minus the Start Date of Planning. Itremains unchanged so long as ORD1 has not been completed.

[0059] The second number, PA, is the lead time (“LT”) from ST up to theorder fed by ST having the longest LT (“OMAX”). PA is the calculated LTfrom ST to OMAX to produce the order quantity, using maximum overlapbetween successive stations, and assuming only one resource per station,always available when needed. (If the resource has MF=S, then its timeper batch (“TPB”) is considered to be S times larger, in order torepresent the fact that it is likely to be unavailable most of thetime.) Thus, PA is given by:

[0060] PA =Sum over all stations from ST up to OMAX of (TPB+SO+SUT)+Order Quantity * TPP of the station on this path having the largest TPP+4*TPB of each station served by a machine with MF=S

[0061] PA will remain unchanged until OMAX is completed. Thus, as longas the system carries a counter showing how many parts remain to beproduced for ORD1, there is no change in these two quantities PC and PA,so they need not be recalculated after each event (in fact, PA willchange at completion of ORD1 only when ORD1=OMAX).

[0062] The third number PB is used to represent the combined effect ofconstrictions in the flow of material from ST to all the orders that itfeeds. As station stock (“SS”) builds up at ST, its priority is loweredby a factor R(ST), where

R(ST)=[(SSL−SS)/SSL] ^(2(PAF+S)/S)

[0063] feeding ST0, PB(ST1)=PB(ST0)*R(ST1). Its predecessor ST2 hasPB(ST2)=PB(ST1)*R(ST2), and so forth. When there is more than one headstation (“HS”) for ST, then the calculation of PB(ST) is more complex.It will depend on the status of the SS at each station. If all of the SSis allocated to one or more of the head stations (“HSi”), then PB(ST) is

PB(ST)=Sum over i of PB(HSi)*PXP(HSi)

[0064] where PB(HSi) is the value of PB at HSi before allocation stockat ST, and PXP is defined as

PXP(HSi)=PR2(HSi)/PR1(HSi)

[0065] where PRI(HSi) is the present value of the priority calculatedfrom HSi (see below), before allocation to any HS of stock at ST andPR2(HSi) is the priority for HSi after allocation of SS at ST. PR2(HSi)is defined by

PR2(HSi)=PR1(HSi)*(INT−FSTT)2*PFAX

[0066] and FSTT is the amount of SS allocated to HSi. PFAX is (PAF+S)/S.

[0067] If there remains SS at ST after allocation to all its HSs, thenPB(ST) is reduced by the factor PSS, where

PSS=[(SSL−SS)/SSL]2

[0068] and, if SS>SSL, then PSS=0.

[0069] Since PB is a sum leading to many orders, each with its own PC asthe first factor, PB may be larger than PC, which always relates only toa single order. However, the R factors which follow each PC can reducePB to the point where it is lower than the value of PC.

[0070] The overall priority is found by taking the smallest of the twovalues PC and PB, calculating tB, the corresponding value of t, shiftingit by the lead time PA and setting

PN=PR(t−PA,PAF).

[0071] The calculation of the counter mentioned above, giving the numberof completed parts at ST to be allocated to each order fed by ST, israther complex and time consuming. After the completion of an MBQ at STwhich is sufficient to cover the needs of ORD1, the system recalculates(a) the order fed by ST with the next highest PN, (i.e. the new PC); (b)the amount to be allocated (the new counter) for the candidate which hasthe earliest due date; and (c) when OMAX=ORD1, the new lead time (thenew PA).

[0072] The above calculation is done via an implosion upwards from STtowards all the orders, to see which orders are being fed by it and alsoto see how the stock is being allocated. This is followed by anexplosion downwards to ascertain the actual quantity needed at ST forits ORD1, the order which has the earliest due date (and therefore, thehighest PC value).

[0073] Returning back to FIG. 2, when a station is a common partstation, the system performs the step 540 of allocating station stock atcommon-part stations and then performs the step 550 of calculating PBand PN for them, according to the same calculations used in step 530.

[0074] Once a batch has started, the system will perform a newscheduling decision at the end of each period of common working timedefined by the user. The period of common working time need not beassociated with a batch completion. Using a personnel schedulingmechanism, only “support” and “set-up man” resources will be released atthe end of the period of common working time. The main machine and/orsubstitute for that workstation will not be released, because there is astrong likelihood that a set-up cost would be incurred. The auxiliaryresources will also not be released. In theory, auxiliaries weredesigned for jigs of the main machine. The assumption is that “support”and “set-up man” resources are people and can be interchanged during abatch without penalties, except for efficiency ratio calculations.

[0075] A saving in calculation time is achieved by recognizing that whena station is activated or its activation is completed, only the priorityof itself and its predecessors need to be recalculated. Thus, thepriorities of the vast majority of the stations do not need to berecalculated each time.

[0076] Another calculation time saving is achieved by recognizing thatwhen the system finds that a recalculated value is unchanged, all valuesfor stations predecessor to it need not be recalculated since they willalso necessarily remain unchanged.

[0077] Whenever the station stock (“SS”) becomes greater (or even justequal) to the calculated SSL of that station, its PN value is changed toS, (3.OE-38), and the station is then in “stop” status. In “stop”status, the station is not allowed to be activated. When two stations ina route are in the status “stop,” then PN is set to a value zero (i.e.,“halt”) and neither these two stations nor any of the predecessors ofthe second station may be activated in order to feed these two stations(though predecessors feeding these two plus others not in “halt” statuswill not be constrained to (“halt” status.)

[0078] Although all stations are potentially prospects for activation,only those stations having at least one MBQ of stock available forconsumption and a PN greater than S can be activated. All other stationsare excluded from consideration.

[0079] Finally, after either steps 530 or 550 of FIG. 2 are completed,step 560 is to update subqueues. Those stations with adequate stock tobe activated and with PN greater than S are all placed in a queue in thesequence of their PN numbers. Each station in the queue is placed in asubqueue (in priority sequence) of all stations whose main machines arethe same. The highest priority station at the head of any subqueue isexamined to see whether it may be assigned. If its machine configuration(except for the auxiliary) is not available, then this subqueue need notbe interrogated further until a new event has occurred. Therefore thesystem will next check the station, at the head of a different subqueue,with the next highest priority. This procedure is repeated until asubqueue is found with its required resources or an appropriatesubstitute available.

[0080] Referring now to FIG. 3, “CHOOSE” module 600 is shown. Step 610calculates priority factors F1 and F2, as well as F3, F4 and tnew whenthere is a setup matrix, to get correct relative priorities within thesubqueues. Upon finding a subqueue with available resources, the systemwill search the stations in the subqueue to assure that setup time isnot needlessly lost. Each main machine resource carries with it theknowledge of the last setup which was done by it, until it issuccessfully reassigned.

[0081] When there is no dependent setup matrix, the station in thesubqueue which last completed a batch (“STLC”) using this resource andthus needs no setup if this resource is used again, will have its PNnumber raised by two factors F1 and F2, such that its new priority PSwill be given by

PS=PN *F1*F2=1.5(1+0.1SUT)PN*F2

[0082] where the “SUT” is the setup time (in hours) which would be lostif a different station is activated.

[0083] The second factor, F2, is introduced to give some weight tohaving the current resource finish all the parts needed for the order itis currently working to complete before starting on parts for anotherorder. This preference is enhanced as the remaining parts to becompleted are reduced. F2 is given by

F2=LT/(TPP*RPD)

[0084] where “LT” is the lead time to the order currently being workedfor and “RPD” is the remaining parts to be done to complete the partsneeded at this station for that Order (RPD is never made less than anMBQ). F1*F2 is limited to be within the upper and lower bounds 1.732<F1*F2<1732.

[0085] When there is a setup matrix, all the stations in the matrixwhich are in the subqueue, except STLC, will also have their PN numberschanged to PS so as to enhance the choosing of stations in a sequencewhich is the preferred progression along the matrix elements. The changeof priority is calculated similarly to the way the lead time is found.The new priority (for all the stations except STLC) is changed to PSwhere

PS=PR(tnew,PAF)*F3

[0086] and where

[0087] F3=(the sum of the matrix elements in the column of the STLC)divided by (the sum of the matrix elements in the row of the candidatefor activation)

[0088] Actually, each row and column are for a group of stations withthe same setup characteristics called a matrix setup group (“MSG”).Thus, strictly, we could refer above to the MSG of the STLC, etc.

[0089] The new time argument, tnew, is the original value of t of theold PN plus the setup time (in days) times a factor F4

tnew=t+SUT*F4

[0090] where

F 4=([(DS+0.01)/PAF] ^((PAF+5)/5))8A*3.1416

[0091] where the added priority from saving a setup can no longer liftit above the priority level of the station at the head of the subqueue.Then the station with the highest total priority (including that due tosetup) is ready for assignment. The above procedure keeps to a minimumthe number of checks that need be made before each assignment.

[0092] At step 620, the system checks for substitutions as needed. Atstep 630, the system finds the station from the subqueues that has thehighest priority and has the full resource configuration needed to loadit at the time module 600 was invoked.

[0093] At step 640, the system calls “ATEN” load the station found. The“ATEN” module of step 640 is described in further detail in FIG. 4,which is next discussed.

[0094] The system, in step 641 of FIG. 4, assigns resources required.The system then looks in step 642 to determine if any setup of theassigned stations is required.

[0095] When there is no setup necessary, step 644 writes an activityrecord to an intermediate holding table and invokes, at step 680, the“SAM 1” the end of the activity. “SAM 1” module 680 is described infurther detail in FIG.5. When there is setup required, step 643 writesthe setup record to the intermediate holding table and invokes the “SAM2” module 690 at the end of the setup. “SAM 1” 690 is described infurther detail in FIG. 6.

[0096] Following the completion of either step 680 or 690 of FIG. 4, atstep 647, the system looks at the activity just loaded to see whetherthe parts allocated for the most urgent order (“PC”) will be completedwith this batch. If yes, the system performs step 648, which calculatesthe new order to be viewed as most urgent, thus changing PC, and PA whenthe most urgent order is also the one with the longest lead time fromthis station. If PC will not be complete with this batch, the systemcycles and checks again at the completion of the next batch. After thenew order is calculated, at step 649 the system updates stock taken fromthe predecessor at activation and goes back 650 to step 500 (FIG. 1).

[0097]FIG. 5 is a flow diagram depicting “SAM 1” subroutine 680 and isused after the system identifies activity with no setup and writes anactivity record. At step 681, the system will update stock justcompleted. Then, at step 682, the system releases resources. After theresources have been released, in step 683, the system takes the sequenceback to step 500 (FIG. 1) to update priorities.

[0098]FIG. 6 is a flow diagram depicting the “SAM 2” subroutine 690 andis used after the system writes a set-up record. In step 691, the systemfrees the setup man. At step 692, the system writes the activity recordto an intermediate holding table and then, at step 693, invokes itselfat the end of the activity. In step 694, the system releases resourcesat the end of the activity, putting stations that had setup in the queueof “setup” stations.

[0099] Referring to FIG. 7, in scheduling an order according to thepresent invention an order can be scheduled in three, but optionallyfive, passes. The process begins with material allocation phase 710,which does a top-down pass, in descending priority of independent demand(earliest due date first +/−priority shift), allocating on-hand suppliesand known arrivals of critical materials. The output of this phase isthe list of activities that need to be scheduled with the correct netquantities.

[0100] At the next step 720, the system calculates the relativepriorities of all activities to be scheduled. The priorities are alsothe earliest permission to start date of each activity. The prioritiesare based on potential resource capacities in buckets of one minute orgreater (the “resolution”). The processing is top-down in increasingpriority of independent demand, from the back of the order list goingforward.

[0101] In step 730, conduct a finite forward pass, doing exact resourceloading and calculating exact available dates. The scheduled date for ademand will be different from its due date if the rough-cut lead timecalculations do not match the actual lead times due to increasedaccuracy or set-up optimization, or if the dates calculated during thetop-down explosion entered negative time.

[0102] A working days parameter is included which decides whether an“activity slack” in the schedule is to be counted in calendar workingdays or calendar real days. If working days are selected, then activitytimes will be counted in working days against actual days. Thus, forexample, an input for a six working day material lead time willtypically be accounted for in the system as an actual eight calendar dayperiod, assuming Saturdays and Sundays are considered non-working days.The system can then schedule queues of activities that can be scheduledin front of lead times on the basis of actual calendar days.

[0103] The system can also accommodate modeling of tank resourcefunctionality. Unlike most other resources where the resource isreleased once the process time has completed, a tank resource isconsumed until the successor activity releases it. Therefore, if thesuccessor stage is a bottleneck, the tank is consumed during the queuetime. It also is constrained by its volume (in a similar way as anoven).

[0104] Tank resources are modeled using a maximum capacity (e.g.,volume), with resources assigned a volume per part in the same measuringunit as that of the maximum capacity. Batches with the same flag numbermay be processed in the same tank at the same time. A batch is an order(or a sub-order) quantity. Set-up matrices can be used to define thechange over time between each flag, e.g., preferential set-up sequences.Activation of the tank is triggered when enough batches have accumulatedso that the tank is filled to at least to a pre-defined minimum volume(Vi). Vi can be set to zero (or set to default to zero absent other userinput), so that the tank can be activated whenever a batch is ready.When other batches are available, the system will seek to enter theother parts that will fit within the remaining available maximumcapacity in order of their own priorities. When the tank capacity issmaller than a batch, smaller quantities filling the tank are processeduntil the entire order is done. When several tanks are available, thesmaller quantities can be done in parallel. For any particular order,the user can define whether or not they want to be able to split anorder over multiple tank activities. Selecting to split orders allowsthe schedule to split an order to maximize the usage of the availabletank capacity. If the option to split is not selected, an order will notbe split. This means that if a tank does not have enough to capacity tohold a full order, the order will be delayed until a tank that hasenough capacity to hold the whole batch is available. A substitute tankwill be called to do a batch of parts when the preferred tank isunavailable. The system takes account of the difference in capacitybetween the preferred tank and its substitute.

[0105] The system also includes a junction raw material (“JRM”)parameter option to prevent the launch of materials and subsequentactivities unnecessarily early. This parameter not only serves to keepwork in progress to a minimum, but also enables resources to work onother activities. The JRM parameter is applicable when a materialrequired for an activity to be scheduled is not available. Other legs ofthe junction are not processed until they will coincide with the arrivalof the late material.

[0106] A T-plant parameter option is available to minimize lead time.Manufacturing plants where finished goods have long lead times may stillwish to respond to firm customer orders within a relatively short leadtime. In T-plant environments, for example assembly houses, manyproducts have several common parts, which diverge only towards the endof the net. In this situation, in order to minimize lead times, ratherthan forecast against finished goods, it would be sensible to produceaccording to forecast to the point(s) where commonality is finished.Then produce from this point only for firm customer orders. An extremeexample of this strategy could be to purchase only the raw material byforecast to the items that use it (because of very long lead times) butnot start production (which has relatively short production lead times)until a firm order is in place. This approach will enable reduced leadtime and increased customer service, while preventing unnecessary WIP.

[0107] Step 740, is an optional fourth pass that analyzes material usageand reallocates stocks and arrivals of critical materials from highpriority activities that did not consume them until a later date tolower priority activities that have been delayed by lack of a material.If pass four 740 is performed, then it is followed by step 750, whichrepeats a finite pass similar to step 730 to determine the effect of thematerial reallocation.

[0108] It will be apparent to those skilled in the art that variousmodifications and variations can be made in the system of the presentinvention without departing from the spirit or scope of the invention.Thus, it is intended that the present invention covers the modificationsand variations of this invention provided that they come within thescope of any claims and their equivalents.

1. A method for optimally scheduling manufacturing resources andselecting scheduling opportunities to fulfill customer orders based onuser-defined goals, comprising the steps of: defining at least one humanresource and at least one non-human resource, wherein said at least onehuman and non-human resources are divided into periods of common workingtime; receiving an order having an objective; generating a productionmethod based on said objective and said defined at least one human andnon-human resource; generating routes and scheduling opportunities basedon said production method; selecting one of said routes and saidscheduling opportunities based on a scheduling goal and a routing goal;generating revised routes and revised scheduling opportunities at an endof each of said periods of common working time; and selecting one ofsaid revised routes and revised scheduling opportunities.
 2. The methodaccording to claim 1 wherein said step of selecting one of said revisedroutes includes releasing only the human resources at the end of any ofsaid periods of common working time.
 3. The method according to claim 1,wherein said resources include future arrivals of supply stock forbought-in items.
 4. A computer-implemented method for deriving at leastone plan for scheduling a use of at least one available human andnon-human resource to satisfy one or more demands for goods or servicescomprising the steps of: describing an environment which models the atleast one available human and non-human resources and at least onealternative methodologies for to utilizing said at least one availablehuman and non-human resources; describing each of said at least oneavailable human and non-human resources and a capacity of each of saidat least one available human and non-human resources; describing autilization structure which describes use and constraints of said atleast one available human and non-human resources; defining each of saiddemands as one or more orders where each of the orders has one or moreline items; scheduling said demands according to a set of possible plansbased upon the environment, wherein activities can be counted incalendar working days or calendar real days; and evaluating eachpossible plan of said set of possible plans for the purpose of at leastone of accepting the plan because it is desired to be implemented andrejecting the plan and initiating steps for creating a new plan.
 5. Themethod according to claim 4, wherein the step of evaluating eachpossible plan comprises the steps of: inspecting a relationship betweena selected plan and each of said demand and said at least one availablehuman and non-human resource, including resources used for executing theselected plan; determining whether the demand is satisfied; comparingthe demand to the at least one available human and non-human resourceswhich will be used for executing the selected plan; and determiningwhether the selected plan is satisfactory based in part on results ofone or more of said steps of inspecting the relationships, determiningwhether demand is satisfied, and comparing the demand to the resources.6. The method according to claim 5, wherein said resources comprise tankresources.
 7. The method according to claim 5, wherein said schedulingincludes at lest one of delaying and reassigning a launch of rawmaterials to support an order such that said launch will coincide withan arrival of another late material.
 8. A computer-implemented methodfor deriving at least one plan for scheduling a use of at least oneavailable human and non-human resource to satisfy one or more demandsfor goods or services comprising the steps of: describing an environmentwhich models the at least one available human and non-human resourcesand at least one alternative methodologies for to utilizing said atleast one available human and non-human resources; describing each ofsaid at least one available human and non-human resources and a capacityof each of said at least one available human and non-human resources;forecasting production requirements for demands within a commonproduction process; describing at least one production schedule whichdescribes the use and limitations on use of at least one of said atleast one available human and non-human resources from a point beyondsaid common production process; defining each of said demands from saidpoint beyond said common production process as one or more orders whereeach of the orders has one or more line items; scheduling said ordersaccording to a set of possible plans based upon the environment; andevaluating each possible plan of said set of possible plans for thepurpose of at least one of accepting the plan because it is desired tobe implemented and rejecting the plan and initiating steps for creatinga new plan.
 9. A system for optimally scheduling manufacturing resourcesand selecting scheduling opportunities to fulfill customer orders basedon user-defined goals, comprising: means for defining at least one humanresource and at least one non-human resource, wherein said at least onehuman and non-human resources are divided into periods of common workingtime; means for receiving an order having an objective; means forgenerating a production method based on said objective and said definedat least one human and non-human resource; means for generating routesand scheduling opportunities based on said production method; means forselecting one of said routes and said scheduling opportunities based ona scheduling goal and a routing goal; means for generating revisedroutes and revised scheduling opportunities at an end of each of saidperiods of common working time; and means for selecting one of saidrevised routes and revised scheduling opportunities.
 10. The systemaccording to claim 9, wherein said means for selecting one of saidrevised routes includes releasing only the human resources at the end ofany of said periods of common working time.
 11. The method according toclaim 9, wherein resources include future arrivals of supply stock forbought-in items.
 12. A system for deriving at least one plan forscheduling a use of at least one available human and non-human resourceto satisfy one or more demands for goods or services comprising thesteps of: means for describing an environment which models the at leastone available human and non-human resources and at least one alternativemethodologies for to utilizing said at least one available human andnon-human resources; means for describing each of said at least oneavailable human and non-human resources and a capacity of each of saidat least one available human and non-human resources; means fordescribing a utilization structure which describes use and constraintsof said at least one available human and non-human resources; means fordefining each of said demands as one or more orders where each of theorders has one or more line items; means for scheduling said demandsaccording to a set of possible plans based upon the environment, whereinactivities can be counted in calendar working days or calendar realdays; and means for evaluating each possible plan of said set ofpossible plans for the purpose of at least one of accepting the planbecause it is desired to be implemented and rejecting the plan andinitiating steps for creating a new plan.
 13. The system according toclaim 12, wherein the step of evaluating each possible plan comprisesthe steps of: means for inspecting a relationship between a selectedplan and each of said demand and said at least one available human andnon-human resource, including resources used for executing the selectedplan; means for determining whether the demand is satisfied; means forcomparing the demand to the at least one available human and non-humanresources which will be used for executing the selected plan; anddetermining whether the selected plan is satisfactory based in part onresults of one or more of said steps of inspecting the relationships,determining whether demand is satisfied, and comparing the demand to theresources.
 14. The system according to claim 13, wherein said resourcescomprise tank resources.
 15. The system according to claim 13, wherein,said scheduling means includes delaying or reassigning the launch of rawmaterials to support an order such that said launch will coincide withthe arrival of another late material.
 16. A system for deriving at leastone plan for scheduling a use of at least one available human andnon-human resource to satisfy one or more demands for goods or servicescomprising the steps of: means for describing an environment whichmodels the at least one available human and non-human resources and atleast one alternative methodologies for to utilizing said at least oneavailable human and non-human resources; means for describing each ofsaid at least one available human and non-human resources and a capacityof each of said at least one available human and non-human resources;means for forecasting production requirements for demands within acommon production process; means for describing at least one productionschedule which describes the use and limitations on use of at least oneof said at least one available human and non-human resources from apoint beyond said common production process; means for defining each ofsaid demands from said point beyond said common production process asone or more orders where each of the orders has one or more line items;means for scheduling said orders according to a set of possible plansbased upon the environment; and means for evaluating each possible planof said set of possible plans for the purpose of at least one ofaccepting the plan because it is desired to be implemented and rejectingthe plan and initiating steps for creating a new plan.
 17. A system foroptimally scheduling manufacturing resources and selecting schedulingopportunities to fulfill customer orders based on user-defined goalscomprising: a module for defining at least one human resource and atleast one non-human resource, wherein said at least one human andnon-human resources are divided into periods of common working time; areceiving module for receiving an order having an objective; a firstgenerating module for generating a production method based on saidobjective and said defined at least one human and non-human resource; asecond generating module for generating routes based on said productionmethod; a selecting module for selecting one of said routes andscheduling opportunities based on a scheduling goal and a routing goal;a third generation module for generating revised routes and revisedscheduling opportunities at an end of each of said periods of commonworking time; and a second selecting module for selecting one of saidrevised routes and revised scheduling opportunities.
 18. The systemaccording to claim 17, wherein said second selecting module includesreleasing only at least one human resource at the end of any of saidperiods of common working time.
 19. The method according to claim 17,wherein resources include future arrivals of supply stock for bought-initems.
 20. A system for deriving at least one plan for scheduling a useof available resources to satisfy one or more demands for goods orservices comprising: a module for describing an environment which modelsthe at least one available human and non-human resources and at leastone alternative methodologies for to utilizing said at least oneavailable human and non-human resources; a module for describing each ofsaid at least one available human and non-human resources and a capacityof each of said at least one available human and non-human resources; amodule for describing a utilization structure which describes use andconstraints of said at least one available human and non-humanresources; a module for defining each of said demands as one or moreorders where each of the orders has one or more line items; a module forscheduling said demands according to a set of possible plans based uponthe environment, wherein activities can be counted in calendar workingdays or calendar real days; and a module for evaluating each possibleplan of said set of possible plans for the purpose of at least one ofaccepting the plan because it is desired to be implemented and rejectingthe plan and initiating steps for creating a new plan.
 21. The systemaccording to claim 20, wherein said evaluating module comprises: amodule for inspecting a relationship between a selected plan and each ofsaid demand and said at least one available human and non-humanresource, including resources used for executing the selected plan; amodule for determining whether the demand is satisfied; a module forcomparing the demand to the at least one available human and non-humanresources which will be used for executing the selected plan; anddetermining whether the selected plan is satisfactory based in part onresults of one or more of said steps of inspecting the relationships,determining whether demand is satisfied, and comparing the demand to theresources.
 22. The system according to claim 21, wherein said resourcescomprise tank resources.
 23. The system according to claim 21, wherein,said scheduling module includes delaying or reassigning the launch ofraw materials to support an order such that said launch will coincidewith the arrival of another late material.
 24. A system for deriving atleast one plan for scheduling a use of available resources to satisfyone or more demands for goods or services comprising the steps of: amodule for describing an environment which models the availableresources and alternative ways to utilize said resources; a module fordescribing each of said available resources and a capacity of each ofsaid available resources; a module for forecasting productionrequirements for demands within said common production process; a modulefor describing at least one production schedule which describes the useand limitations on use of some of said available resources from a pointbeyond said common production process; a module for defining each ofsaid demands from said point beyond said common production process asone or more orders where each of the orders has one or more line items;a module for scheduling said orders according to a set of possible plansbased upon the environment; and a module for evaluating each possibleplan of said set of possible plans for the purpose of either (a)accepting the plan because it is desired to be implemented, or (b)rejecting the plan and initiating steps for creating a new plan.
 25. Aprogram storage device readable by a machine, tangibly embodying aprogram of instructions executable by a machine to perform the steps ofoptimally scheduling manufacturing resources and selecting schedulingopportunities to fulfill customer orders based on user-defined goals,comprising the steps: defining at least one human resource and at leastone non-human resource, wherein said at least one human and non-humanresources are divided into periods of common working time; receiving anorder having an objective; generating a production method based on saidobjective and said defined at least one human and non-human resource;generating routes and scheduling opportunities based on said productionmethod; selecting one of said routes and said scheduling opportunitiesbased on a scheduling goal and a routing goal; generating revised routesand revised scheduling opportunities at an end of each of said periodsof common working time; and selecting one of said revised routes andrevised scheduling opportunities.
 26. The program storage deviceaccording to claim 25 wherein said step of selecting one of said revisedroutes includes releasing only the at least one human resource at theend of any of said periods of common working time.
 27. The programstorage device according to claim 25 wherein, in said step of definingresources, said resources include future arrivals of supply stock forbought-in items.
 28. A program storage device readable by a machine,tangibly embodying a program of instructions executable by a machine toperform the steps of deriving at least one plan for scheduling a use ofavailable resources to satisfy one or more demands for goods orservices, comprising the steps of: describing an environment whichmodels the available human and non-human resources and alternative waysto utilize said resources; describing each of said available resourcesand a capacity of each of said available resources; describing autilization structure which describes the use and limitations on use ofsubstantially all of said available resources; defining each of saiddemands as one or more orders where each of the orders has one or moreline items; scheduling said demands according to a set of possible plansbased upon the environment wherein activities can be counted in calendarworking days or calendar real days; and evaluating each possible plan ofsaid set of possible plans for the purpose of either (a) accepting theplan because it is desired to be implemented, or (b) rejecting the planand initiating steps for creating a new plan.
 29. The program storagedevice according to claim 28 wherein the step of evaluating eachpossible plan comprises: inspecting the relationship between theselected plan and each of said demand and said resources, including whatresources will be used in executing the plan; determining whether thedemand is adequately satisfied; comparing the demand to the resourceswhich will be used in executing the plan; and determining whether theplan is satisfactory based in part on results of one or more of saidsteps of inspecting the relationships, determining whether demand issatisfied, and comparing the demand to the resources.
 30. The programstorage device according to claim 29, wherein said resources comprisetank resources.
 31. The program storage device according to claim 29,wherein, in said step of scheduling said demands, said schedulingincludes delaying or reassigning the launch of raw materials to supportan order such that said launch will coincide with the arrival of anotherlate material.
 32. A program storage device readable by a machine,tangibly embodying a program of instructions executable by a machine toperform the steps of deriving at least one plan for scheduling a use ofavailable resources to satisfy one or more demands for goods orservices, comprising the steps of: describing an environment whichmodels the available resources and alternative ways to utilize saidresources; describing each of said available resources and a capacity ofeach of said available resources; forecasting production requirementsfor demands within said common production process; describing at leastone production schedule which describes the use and limitations on useof some of said available resources from a point beyond said commonproduction process; defining each of said demands from said point beyondsaid common production process as one or more orders where each of theorders has one or more line items; scheduling said orders according to aset of possible plans based upon the environment; and evaluating eachpossible plan of said set of possible plans for the purpose of either(a) accepting the plan because it is desired to be implemented, or (b)rejecting the plan and initiating steps for creating a new plan.